As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Likewise, individuals and businesses seek additional ways to protect or secure information, so as to improve, for example, reliability, fault tolerance, or accessibility of that information. One such method of protecting information in an information handling system involves replicating or sharing information so as to ensure consistency between redundant resources, such as data storage devices, including but not limited to, disk drives, solid state drives, tape drives, etc. Replication of information, or data, is possible across various components communicatively coupled through a computer network, such as a LAN, WAN, the Internet, etc., so the data storage devices may be, and often desirably are, located in physically distant locations. One purpose of data replication, particularly remote data replication, is to prevent damage from failures or disasters that may occur in one location, and/or in case such events do occur, improve the ability to recover the data.
Oftentimes, in fact, disaster recovery policies demand that sites replicate their data offsite in case of an emergency. However, many remote sites (or remote offices) have a problem with low bandwidth, hindering their ability to complete their business critical replication operations. The low bandwidth may be caused, for example but not limited to, by a slow WAN, periods of high traffic or bandwidth use during the day, a site policy that limits bandwidth for any reason, such as but not limited to, usage statistics, or any number of other reasons.
A traditional method for reducing the strain on bandwidth that replication may cause includes having a policy to always compress the data prior to transmitting it across the network, in an attempt to generally reduce the amount of data being transmitted. However, such a policy of constant compression has its drawbacks. Specifically, compressing the data (and decompressing at the receiving side) consumes CPU time, requires a certain level of hardware cost (e.g., memory cost), and can create latency issues with regard to availability of the replicated data. Additionally, in some cases, the compressed data does not take up less space or the difference in space savings is minimal or negligible. Accordingly, compressing such data can be a significant waste of time and resources.
Accordingly, improved systems and methods for replicating data in a data storage environment are needed, particularly where low bandwidth may be hindering the ability to replicate efficiently. Specifically, what is needed are systems and methods for efficiently replicating data between two or more network connected data storage sites or devices in a data storage subsystem or information handling system, with the use of dynamic or on-demand compression. Such systems and methods could be particularly useful with, but are not limited to use in, systems with relatively slower network links or connections.